package com.example.teachingSystem.service;

import com.example.teachingSystem.pojo.entity.Course;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.teachingSystem.pojo.form.course.AddCourseForm;
import com.example.teachingSystem.pojo.form.course.CoursePageQuery;
import com.example.teachingSystem.pojo.form.course.UpdateCourseForm;
import com.example.teachingSystem.pojo.vo.OptionVo;
import com.example.teachingSystem.pojo.vo.course.CourseVo;
import com.example.teachingSystem.utils.result.PageResult;
import com.example.teachingSystem.utils.result.Result;

import java.util.List;

/**
* @author 86147
* @description 针对表【course(课程表)】的数据库操作Service
* @createDate 2023-12-10 23:57:59
*/
public interface CourseService extends IService<Course> {
    Result<String> addCourse(AddCourseForm addCourseForm);

    Result<String> updateCourse(UpdateCourseForm updateCourseForm);

    Result<String> deleteCourse(Long id);

    PageResult<CourseVo> getMyCoursePageByStu(CoursePageQuery coursePageQuery);

    Result<List<CourseVo>> getOptionalCoursesByStu(Long semesterId);

    PageResult<CourseVo> getMyCoursePageByTea(CoursePageQuery coursePageQuery);

    PageResult<CourseVo> getAllCoursePage(CoursePageQuery coursePageQuery);

    Result<List<OptionVo>> getTeacherOptions();
}
